Previous: Hanging Colons, Up: Custom Auto-newlines [Contents][Index]
This style variable takes a list of functions; these get
called when you type a semicolon or comma. The functions are
called in order without arguments. When these functions are
entered, point is just after the newly inserted
‘;’ or ‘,’
and they must preserve point (e.g., by using
save-excursion). During the call, the variable
c-syntactic-context is bound to the syntactic
context of the current line30 see Custom Braces. These
functions don’t insert newlines themselves, rather they
direct CC Mode whether or not to do so. They should return
one of the following values:
tA newline is to be inserted after the ‘;’ or ‘,’, and no more functions from the list are to be called.
stopNo more functions from the list are to be called, and no newline is to be inserted.
nilNo determination has been made, and the next function in the list is to be called.
Note that auto-newlines are never inserted before a semicolon or comma. If every function in the list is called without a determination being made, then no newline is added.
In AWK mode, this variable is set by default to
nil. In the other modes, the default value is a
list containing a single function,
c-semi&comma-inside-parenlist. This inserts
newlines after all semicolons, apart from those separating
for-clause statements.
This is an example of a criteria function, provided by CC
Mode. It prevents newlines from being inserted after
semicolons when there is a non-blank following line.
Otherwise, it makes no determination. To use, add this
function to the front of the
c-hanging-semi&comma-criteria list.
(defun c-semi&comma-no-newlines-before-nonblanks ()
(save-excursion
(if (and (eq last-command-char ?\;)
(zerop (forward-line 1))
(not (looking-at "^[ \t]*$")))
'stop
nil)))
The function
c-semi&comma-inside-parenlist is what
prevents newlines from being inserted inside the parenthesis
list of for statements. In addition to
c-semi&comma-no-newlines-before-nonblanks
described above, CC Mode also comes with the criteria
function
c-semi&comma-no-newlines-for-oneline-inliners,
which suppresses newlines after semicolons inside one-line
inline method definitions (e.g., in C++ or Java).
Previous: Hanging Colons, Up: Custom Auto-newlines [Contents][Index]